Traditional Structured Query Language (SQL) databases use unique tables to represent and describe data structures in relational database management systems. While SQL tables are very organized and uniform, next-generation databases are being developed that are non-relational and schema-free, such as Not Only SQL (NoSQL) databases, that have heterogeneous data structures in a single table.
NoSQL databases have emerged as cost-effective solutions for very large data sets. The heterogeneous, loosely structured nature of table row data in NoSQL databases complicates common database development tasks, such as data analysis and semantic error detection. One problem with existing tools for viewing and editing NoSQL databases is the lack of a way to distinguish between different entity types. Due to the volume (e.g., number of rows) and width of data (e.g., number of columns) described, it can be difficult to differentiate between semantically distinct data rows within a single table. For example, a NoSQL table may encapsulate two or more distinct data structures where each data structure has its own columns. Existing development tools cannot differentiate semantically distinct row data based on their column values. As a result, development tasks, such as analysis and error detection for NoSQL and other schema-less data, can be a considerable challenge in non-relational and schema-free databases.
Another problem with existing NoSQL databases is that the data is spread out so that it is difficult to see all of the data for a given entity on one screen. Many of the columns for a given row will be blank because those columns or properties are associated with other data structures in the same table. As a result, the user has to scroll horizontally through the database to see all of the properties for a selected row.
An additional problem caused by these blank cells is the creation of a lot of “white space” (i.e., unused or unneeded space) in the table. It can be difficult to visualize the state and meaning of a row representing a selected data structure if columns for other data structures are interspersed with the columns for the selected data structure. Large gaps between the properties for a given row make it difficult for the user to scan the table.
A further problem with the display of existing NoSQL databases is the use of uniform column widths regardless of the amount of space required by the property associated with each column. A property requiring few pixels (e.g., 1-10 characters) is assigned the same space as a property requiring very many pixels (e.g., 100+ characters). As a result, additional white space is added to the shorter property, and the longer property is likely only partially displayed, which may render it unreadable.